Universal 175-slot animation support in UOFiddler (anim_custom.mul/idx) — edit, preview, import/export, and convert - #1
Open
Tald0r wants to merge 1 commit into
Open
Conversation
This commit introduces a new, flexible animation file format, `anim_custom.idx` and `anim_custom.mul`, identified as file type 6. This allows for mixing different animation types (High Detail Monster, Low Detail Animal, People/Equipment) within a single file, overcoming the rigid structure of the original anim files. Key changes include: - A universal 175-slot block structure is used for each body in `anim_custom`. - The `extra` field in the `.idx` file is repurposed to store the body type (0=H, 1=L, 2=P), which determines the animation set and length. - The AnimationEdit UI now dynamically loads and displays the correct actions based on the stored body type when viewing `anim_custom`. - A "Convert" context menu option has been added, allowing users to change the type of empty body slots. - VD file import logic is updated to respect the animation type from the source file when importing into an `anim_custom` slot.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
✨ Universal 175-slot animation support in UOFiddler (
anim_custom.mul/idx) — edit, preview, import/export, and convertSummary
This PR adds first-class support in UOFiddler for a single, universal animation file pair,
anim_custom.mul+anim_custom.idx(file type 6), that uses a fixed 175-slot-per-body layout (35 actions × 5 directions). Unlike legacy anim files,anim_customcan mix different animation types per body (High/Low/People). The UI and editor logic were updated to recognize, display, and persist the correct action sets dynamically based on the type stored in the.idx“extra” field.The classic anim loaders (anim.mul, anim2.mul, …) remain fully supported.
anim_customis simply an additional option that simplifies authoring, import/export workflows, and tool-chain interoperability with modern packs.Motivation
.idxextra field.Key changes
Core format and addressing
anim_custom.mul/idx.body * 175 + action * 5 + mirroredDirmirroredDir = dir <= 4 ? dir : dir - ((dir - 4) * 2).idxextra field stores the body type:0 = High (Monsters),1 = Low (Animals),2 = People/Equipment.Animations runtime updates
anim_customalongside the existing anim1..5..idxlength divided by175 * 12..idxextra field (not body ranges).Editing pipeline (AnimationEdit)
anim_custom..idx“extra” field persistsBodyTypeper entry in file type 6.BodyType, ensuring fidelity with downstream tools..idxon Save.UI/UX (AnimationEditForm)
BodyTypefrom.idxextra (or cached AnimIdx) and builds the correct action list and labels (H/L/P) per body..idxand reloading the node.anim_customidentically to legacy files.Behaviour
anim_custom.mul/idxis present:.idxand immediately refresh the TreeView/action labels.anim_custom.mul/idxis not present:Files changed (high-level)
.idxextra field..idxextra..idxextra for 6; legacy files remain unchanged.175-slot addressing reference (for contributors)
mirroredDir = dir <= 4 ? dir : dir - ((dir - 4) * 2)slot = body * 175 + action * 5 + mirroredDirbody * 175body * 175 + action * 5Migration / Usage
anim_custom.mulandanim_custom.idxto the data folder..idxand shows the correct action names.Notes for reviewers
.idxextra field is the single source of truth for BodyType inanim_custom.TL;DR
UOFiddler now supports a modern, single-file universal animation pack (
anim_custom.mul/idx, file type 6) with a fixed 175-slot layout per body, mixed body types, and seamless UI/VD import/export integration — without disrupting legacy anim workflows.